package Test06;

//压缩流

/*
  压缩一个文件
 */

import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class Test36 {
    public static void main(String[] args) throws IOException {

        //1、创建File对象表示要压缩的文件
        File src = new File("D:\\工作\\dest\\csbCopy.txt");

        //2、创建File对象表示压缩报的位置
        File dest = new File("D:\\工作\\dest");

        //3、调用方法
        toZip(src, dest);
    }

    public static void toZip(File src, File dest) throws IOException {

        //1、创建压缩流关联压缩包
        ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(new File(dest, "csbCopy.zip")));

        //2、创建ZipEntry对象，表示压缩包里面的每一个文件或者文件夹
        //参数：压缩包里面的路径
        ZipEntry entry = new ZipEntry("csbCopy.txt");

        //3、把ZipEntry对象放到压缩包中
        zos.putNextEntry(entry);

        //4、把src文件中的数据写到压缩包当中
        FileInputStream fis = new FileInputStream(src);
        int b;
        while ((b = fis.read()) != -1) {
            zos.write(b);
        }

        zos.closeEntry();
        zos.close();
    }
}
